package com.coder520.boot.hello.controller;

import java.util.Arrays;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import com.coder520.boot.hello.entity.User;
import com.coder520.boot.hello.service.UserService;

@RestController
@RequestMapping("/user")
public class UserController {
	@Autowired
	private UserService userService;
	/**
	 * 
	 * @return
	 *	2017年9月20日
	 */
	@RequestMapping("/hello")
	public String sayHi() {
		return "hi";
	}
	
	/**
	 * 
	 * @return
	 *	2017年9月20日
	 */
	@RequestMapping("/all")
	public List<User> getAllUser(){
		return userService.getAllUser();
	}
	/**
	 * 
	 * @param id
	 * @return
	 *	2017年9月20日
	 */
	@RequestMapping("/{id}")//建立具有restful代码风格的好习惯，在boot中，@responsebody源代码进行实现
	public User getUserById(@PathVariable String id) {
		User user=userService.getUserById(id);
		return user;
	}
	/**
	 *  requestMapping默认的跳转方法是get
	 * post方法代表创建一个新的对象
	 * @param user
	 *	2017年9月20日
	 */
	@RequestMapping(method=RequestMethod.POST,value="/add")
	public void addUser(@RequestBody User user) {//建议使用json字符串
		userService.addUser(user);
	}
	/**
	 * 
	 * @param id
	 * @param user
	 *	2017年9月20日
	 */
	@RequestMapping(method=RequestMethod.PUT,value="/update/{id}")
	public void updateUser(@PathVariable String id,@RequestBody User user) {//建议使用json字符串,restful风格代码
		userService.updateUser(id,user);
	}
	/**
	 * 
	 * @param id
	 *	2017年9月20日
	 */
	@RequestMapping(value="/del/{id}",method=RequestMethod.DELETE)
	public  void delUser(@PathVariable String  id) {
		userService.delUser(id);
	}
}
